import dotaClasses

class precisionAura(dotaClasses.buff):
	maxLevel = 4
	@property
	def damage(self):
		return (.10 + .04 * self.level) * self.associatedHero.getTotalAgi()

class genericDamageBuff(dotaClasses.buff):

	options = {'gndbd' : dotaClasses.numericalOption()}
	options['gndbd'].displayName = "Generic Damage Buff: Amount of Damage"
	options['gndbd'].minValue = 0
	options['gndbd'].maxValue = 255
	name = "Generic Damage Buff"
	@property
	def damage(self):
		return self.options['gndbd'].value

class acPositive(dotaClasses.buff):
	armorAura = 5
	IAS = 20
	name = "Assault Cuirass Positive Aura"

class acNegative(dotaClasses.buff):
	armor = -5
	name = "Assault Cuirass Negative Aura"

class vladsAura(dotaClasses.buff):
	armorAura = 5
	damageP = .15
	auraLifeSteal = .16
	MPR = .8
	
class unholyStrength(dotaClasses.buff):
	damage = 31
	IAS = 10
	strength = 25
	HPR = -40


buffList = {'drts' : trueShotBuff, 'gndb' : genericDamageBuff, 'acpa' : acPositive, 'acna' : acNegative}

for objName in dir():
	obj = vars()[objName]
	try:
		if obj.__bases__[0] == dotaClasses.buff:
			buffList[obj.webID] = obj
	except:
		pass
